package com.mindskip.xzs.viewmodel.admin.exam;
//这段代码定义了一个试卷实体类，用于在后端存储试卷相关信息。
// 在前端，可以通过调用这个实体类的方法来获取或设置试卷的属性，如试卷名称、建议答题时间、限制时间范围、试卷标题项列表、试卷总分等。
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;

// 考试试卷编辑请求视图模型类
public class ExamPaperEditRequestVM {
    private Integer id; // 试卷ID
    private Integer level; // 试卷难度等级
    private Integer subjectId; // 科目ID
    @NotNull // 试卷类型不能为空
    private Integer paperType; // 试卷类型
    @NotBlank // 试卷名称不能为空
    private String name; // 试卷名称
    @NotNull // 建议答题时间不能为空
    private Integer suggestTime; // 建议答题时间

    private List<String> limitDateTime; // 限制时间范围

    @Size(min = 1, message = "请添加试卷标题")
    @Valid // 确保列表中每个对象都需要验证
    private List<ExamPaperTitleItemVM> titleItems; // 试卷标题项列表

    private String score; // 试卷总分

    // 获取试卷ID
    public Integer getId() {
        return id;
    }

    // 设置试卷ID
    public void setId(Integer id) {
        this.id = id;
    }

    // 获取试卷难度等级
    public Integer getLevel() {
        return level;
    }

    // 设置试卷难度等级
    public void setLevel(Integer level) {
        this.level = level;
    }

    // 获取科目ID
    public Integer getSubjectId() {
        return subjectId;
    }

    // 设置科目ID
    public void setSubjectId(Integer subjectId) {
        this.subjectId = subjectId;
    }

    // 获取试卷类型
    public Integer getPaperType() {
        return paperType;
    }

    // 设置试卷类型
    public void setPaperType(Integer paperType) {
        this.paperType = paperType;
    }

    // 获取试卷名称
    public String getName() {
        return name;
    }

    // 设置试卷名称
    public void setName(String name) {
        this.name = name;
    }

    // 获取建议答题时间
    public Integer getSuggestTime() {
        return suggestTime;
    }

    // 设置建议答题时间
    public void setSuggestTime(Integer suggestTime) {
        this.suggestTime = suggestTime;
    }

    // 获取限制时间范围列表
    public List<String> getLimitDateTime() {
        return limitDateTime;
    }

    // 设置限制时间范围列表
    public void setLimitDateTime(List<String> limitDateTime) {
        this.limitDateTime = limitDateTime;
    }

    // 获取试卷标题项列表
    public List<ExamPaperTitleItemVM> getTitleItems() {
        return titleItems;
    }

    // 设置试卷标题项列表
    public void setTitleItems(List<ExamPaperTitleItemVM> titleItems) {
        this.titleItems = titleItems;
    }

    // 获取试卷总分
    public String getScore() {
        return score;
    }

    // 设置试卷总分
    public void setScore(String score) {
        this.score = score;
    }
}
